#!/bin/bash  
  
# 要获取的URL  
url="https://bcr.pbh-btn.ghorg.ghostchu-services.top/combine/all.txt"  # 确保这里的URL是正确的  
  
# 检查是否以root用户运行，或者使用sudo提升权限  
if [[ $EUID -ne 0 ]]; then  
   echo "此脚本必须以root用户身份运行或使用sudo提升权限"   
   exit 1  
fi  
  
# 使用wget获取内容并保存到变量中，并检查wget是否成功  
content=$(wget -qO - "$url" 2>/dev/null)  
if [[ $? -ne 0 ]]; then  
  echo "无法从URL获取内容，请检查URL是否正确或网络连接是否正常"  
  exit 1  
fi  
  
sudo iptables -F INPUT
sudo ip6tables -F INPUT 
# 假设内容现在存储在变量content中，并且您想将其写入一个文件以供后续处理  
# 这里我们创建一个临时文件来存储CIDR地址  
temp_file=$(mktemp)  
echo "$content" > "$temp_file"  
INPUT_FILE="$temp_file"  
  
# 读取文件并添加规则  
while IFS= read -r cidr_ip; do  
  # 去除前后空白字符  
  cidr_ip="${cidr_ip##*( )}"  
  cidr_ip="${cidr_ip%%*( )}"  
  
  if [[ -n "$cidr_ip" ]]; then  
    if [[ "$cidr_ip" =~ ^[0-9a-fA-F:]+(/[0-9]+)?$ ]]; then  
      # 添加 ip6tables 规则 
      if ! sudo ip6tables -A INPUT -s "$cidr_ip" -j DROP; then  
        echo "无法添加规则：禁止来自 IPv6 地址 $cidr_ip 的访问" >&2  
      else  
        echo "添加了规则：禁止来自 IPv6 地址 $cidr_ip 的访问"  
      fi  
    else  
      # 添加 iptables 规则（默认为 IPv4）  
      if ! sudo iptables -A INPUT -s "$cidr_ip" -j DROP; then  
        echo "无法添加规则：禁止来自 IPv4 地址 $cidr_ip 的访问" >&2  
      else  
        echo "添加了规则：禁止来自 IPv4 地址 $cidr_ip 的访问"  
      fi  
    fi  
  else  
    echo "无效的输入行：$cidr_ip" >&2  
  fi  
done < "$INPUT_FILE"  
  
# 清理临时文件  
rm -f "$temp_file"
date >> /var/log/block_ip.log
